/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package control;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;

/**
 *
 * @author Jhovany Amaya
 */
public class FileAnalysis {
    
    private File file;
    private FileReader fileReader;
    private BufferedReader buffer;

    public FileAnalysis() {
    }
    
    public ArrayList<String> getFileDatails(String path){
        int numberOfLines = 0;
        ArrayList<String> result = new ArrayList<>();
        try {
            // Apertura del fichero y creación de BufferedReader para poder
            // hacer una lectura cómoda (disponer del método readLine()).
            file = new File(path);
            fileReader = new FileReader (file);
            buffer = new BufferedReader(fileReader);
            
            //Nombre del archivo
            result.add(file.getName());
            //Path del archivo
            result.add(file.getPath());
            //Tiene permiso de lectura
            result.add(file.canRead()?"Si":"No");
            //Tamaño
            result.add(file.length() + " bytes");
            
            // Conteo de líneas del archivo
            while (buffer.readLine() != null)
                numberOfLines++;
            //Número de líneas
            result.add(numberOfLines + " lines");
            
            //Fecha última modificación
            Calendar day = Calendar.getInstance();
            day.setTimeInMillis(file.lastModified());
            result.add(((day.get(Calendar.DATE)<10)?"0":"")+day.get(Calendar.DATE)+"/"+
                    ((day.get(Calendar.MONTH)<10)?"0":"")+day.get(Calendar.MONTH)+"/"+
                    day.get(Calendar.YEAR)+" a las "+
                    ((day.get(Calendar.HOUR_OF_DAY)<10)?"0":"")+day.get(Calendar.HOUR_OF_DAY)+":"+
                    ((day.get(Calendar.MINUTE)<10)?"0":"")+day.get(Calendar.MINUTE));
        }
        catch(Exception e){
            e.printStackTrace();
        }finally{
             // En el finally cerramos el fichero, para asegurarnos
             // que se cierra tanto si todo va bien como si salta
             // una excepción.
             try{
                if( null != fileReader )
                   fileReader.close();
             }catch (Exception e2){
                e2.printStackTrace();
             }
            
             return result;
        }
    }
    
}
